package com.itheima.blog.web.service;

import com.itheima.blog.web.domain.po.TAlbum;
import com.itheima.api.client.vo.BlogContributionVO;
import com.itheima.api.client.vo.ProvinceBLogNum;
import com.itheima.api.client.vo.TBlogByCategoryID;
import com.itheima.api.client.vo.TBlogByTagID;
import com.itheima.blog.web.domain.po.TBlog;
import com.baomidou.mybatisplus.extension.service.IService;
import com.itheima.blog.web.domain.query.BlogPageQuery;
import com.itheima.common.domain.PageResDto;
import com.itheima.common.domain.R;
import com.itheima.common.domain.dto.BlogPageDto;

import java.util.List;


/**
 * <p>
 * 博客文章表 服务类
 * </p>
 *
 * @author wc
 * @since 2023-07-11
 */
public interface ITBlogService extends IService<TBlog> {
    PageResDto getBlogPages(BlogPageQuery blogPageQuery);

    void add(TBlog tBlog);

    void updateBlog(TBlog tBlog,Long blogId);


    Long getBlogs();

    List<TBlogByTagID> getTBlogByTagID();

    List<TBlogByCategoryID> getTBlogByCategoryID();

    List<BlogContributionVO> getBlogContributions();

    List<ProvinceBLogNum> getProvinceBLogNum(Integer classify);

    R getBlogDetail(Long blogId);

    void deleteBlog(Long blogId);

    List<TAlbum> getImages();

    boolean putBlog(TBlog tBlog);
    boolean putBlogIsPush(TBlog tBlog);

    boolean chengePublish(TBlog tBlog);

    boolean changeBlogComment(TBlog comment);

    List<String> getBlogNameList(Long categoryId);

    R getBlogList(BlogPageDto pageReqDto);

    List queryBlogByCategoryId(List<Integer> ids);
}
